package com.explorati.design_pattern.creational.builder;

/**
 * 课程实际建造者
 * 课程有一些属性并且有set、get方法，建造者有一些抽象方法，并且有一个抽象的建造课程的方法(返回值是Course)，真实建造者继承建造者并实现相应方法，
 * 并给他一个私有属性course，创建一个教练类，中有一个属性CourseBuilder，类型是CourseBuilder的，利用set方法将，参数注入进去
 * ，测试的时候makeCourse(),test负责创建builder，每一个builder里面内容不一样
 * 
 * @author explorati
 *
 */
public class CourseActualBuilder extends CourseBuilder {

	// 注入一个course对象
	private Course course = new Course();

	@Override
	public void buildCourseName(String courseName) {
		course.setCourseName(courseName);
	}

	@Override
	public void buildCoursePPT(String coursePPT) {
		course.setCoursePPT(coursePPT);
	}

	@Override
	public void buildCourseVideo(String courseVideo) {
		course.setCourseVideo(courseVideo);
	}

	@Override
	public void buildCourseArticle(String courseArticle) {
		course.setCourseArticle(courseArticle);
	}

	@Override
	public void buildCourseQA(String courseQA) {
		course.setCourseQA(courseQA);
	}

	/**
	 * 返回课程对象
	 */
	@Override
	public Course makeCourse() {
		return course;
	}

}
